package com.gem.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 日期工具类
 */
public class DateUtil {

  /**
   * 根据指定的年月日生成对应的日期
   *
   * @param year 年份
   * @param month 月份
   * @param day 日
   * @return 对应生成的日期对象
   */
  public static Date createDate(int year, int month, int day) {
    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month - 1, day);
    return calendar.getTime();
  }

  /**
   * 根据指定的格式化日期(把日期对象转换成字符串)
   *
   * @param date 日期
   * @param pattern 格式化的模板
   * @return 格式化后的日期字符串
   */
  public static String formatDate(Date date) {
    return new SimpleDateFormat("yyyy-MM-dd").format(date);
  }

  public static String formatDate(Date date, String pattern) {
    return new SimpleDateFormat(pattern).format(date);
  }

  /**
   * 解析日期字符串(把字符串转换成日期对象)
   *
   * @param str 日期字符串
   * @return 日期类型
   */
  public static Date parseDate(String str) {
    Date date = null;
    try {
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
      date = simpleDateFormat.parse(str);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    return date;
  }

  public static Date parseDate(String str, String pattern) {
    Date date = null;
    try {
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
      date = simpleDateFormat.parse(str);
    } catch (ParseException e) {
      e.printStackTrace();
    }
    return date;
  }
}
